package warenautomat;

public class Muenzsaeule {
   private int mAktuelleAnzahl;
   private int mMuenzwertInRappen;
   private static final int MAX_ANZAHL = 100;

   /*
    * Konstruktor
    * 
    * @param pMuenzwertInRappen Wert einer einzelnen Münze
    */
   public Muenzsaeule(int pMuenzwertInRappen) {
      mMuenzwertInRappen = pMuenzwertInRappen;
      System.out.println("Muenzsaeule::Muenzsaeule("+mMuenzwertInRappen+"Rp.): ");
   }

   /*
    * fügt 1 Münze der Münzsüule hinzu
    * 
    * @return false = Münze konnte nicht hinzugefügt werden (Münzsüule voll),
    * sonst true
    */
   public boolean einfuegenMuenze() {
      boolean einfuegenOk = false;

      if (mAktuelleAnzahl < MAX_ANZAHL) {
         mAktuelleAnzahl++;
         einfuegenOk = true;
      }


      System.out.println("Muenzsaeule::einfuegenMuenze(): " + (einfuegenOk?"ok":"fehlerhaft"));
      return einfuegenOk;
   }

   /*
    * entnimmt 1 Münze aus der Münzsüule
    * 
    * @return false = Münze konnte nicht entnommen werden (Münzsüule leer),
    * sonst true
    */
   public boolean entnehmeMuenze() {
      boolean entnehmenOk = false;

      if (mAktuelleAnzahl > 0) {
         mAktuelleAnzahl--;
         entnehmenOk = true;
      }

      System.out.println("Muenzsaeule::entnehmeMuenze(): " + (entnehmenOk?"ok":"fehlerhaft"));
      return entnehmenOk;
   }

   /*
    * Gibt die aktuelle Anzahl Münzen in der Münzsüule zurück
    * 
    * @return Anzahl Münzen
    */
   public int getAktuelleAnzahl() {
      System.out.println("Muenzsaeule::getAktuelleAnzahl(): " + mAktuelleAnzahl);
      return mAktuelleAnzahl;
   }

   /*
    * Gibt die maximale Anzahl Münzen zurück, die in einer Münzsüule platz haben
    * 
    * @return max. Anzahl Münzen
    */
   public int getMaxAnzahl() {
      System.out.println("Muenzsaeule::getMaxAnzahl(): " + MAX_ANZAHL);
      return MAX_ANZAHL;
   }

   /*
    * Gibt den Wert einer Münze zurück
    * 
    * @return Wert einer Münze
    */
   public int getMuenzwertInRappen() {
      System.out.println("Muenzsaeule::getMuenzwertInRappen(): " + mMuenzwertInRappen +"Rp.");
      return mMuenzwertInRappen;
   }
}
